]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
NotificationDaemon: don't destroy trayicons when dismissing their notifications
authorDan Winship <danw@gnome.org>
Thu, 30 Sep 2010 20:56:50 +0000 (16:56 -0400)
committerDan Winship <danw@gnome.org>
Tue, 12 Oct 2010 21:21:58 +0000 (17:21 -0400)
Tray icons control their own lifespan; they're not supposed to
disappear when you dismiss their notifications like non-trayicon
notification sources do.

https://bugzilla.gnome.org/show_bug.cgi?id=631042

js/ui/notificationDaemon.js

index 3e0bd6b4616b4b114933cff70338c3c55950c05d..59c48d59f679fd91c4790db8bc948b7ff9ccd1ef 100644 (file)
@@ -344,14 +344,14 @@ NotificationDaemon.prototype = {
         for (let id in this._sources) {
             let source = this._sources[id];
             if (source.app == tracker.focus_app) {
-                source.destroy();
+                source.activated();
                 return;
             }
         }
     },
 
     _actionInvoked: function(notification, action, source, id) {
-        source.destroy();
+        source.activated();
         this._emitActionInvoked(id, action);
     },
 
@@ -401,6 +401,7 @@ Source.prototype = {
             this.title = this.app.get_name();
         else
             this.useNotificationIcon = true;
+        this._isTrayIcon = false;
     },
 
     notify: function(notification, icon) {
@@ -427,11 +428,18 @@ Source.prototype = {
     setTrayIcon: function(icon) {
         this._setSummaryIcon(icon);
         this.useNotificationIcon = false;
+        this._isTrayIcon = true;
     },
 
-    _notificationClicked: function() {
+    _notificationClicked: function(notification) {
+        notification.destroy();
         this.openApp();
-        this.destroy();
+        this.activated();
+    },
+
+    activated: function() {
+        if (!this._isTrayIcon)
+            this.destroy();
     },
 
     openApp: function() {